import {get,post,put,del} from "@/network/http"
import axios from "axios";

/**
 * @描述  查询角色
 * param query.name
 * param query.status
 * @日期 2021/2/26 9:36
 * @返回 回调方法，返回分页list数据，分页总条数
 */
function getRoles(query,fallback) {
    get("/role/getRoles", query).then(({data}) => {
        fallback(data.list,parseInt(data.total))
    });
}

/**
 * @描述
 * @param query.name
 * @param query.status
 * @返回
 * @码农 丁昌江
 * @日期 2021/2/26 9:38
 */
function getMenuTree(query,fallback){
    get("/menu/getMenuTree",query).then(({data})=>{
        fallback(data)
    })
}

/**
 * @描述 获取部门树形结构数据
 * @返回 回调函数将请求结果带回
 * @码农 丁昌江
 * @日期 2021/3/1 15:03
 */
function getDeptTree(query, fallback) {
    get("/dept/getDeptTree",query).then(({data}) => {
        if (fallback) {
            fallback(data)
        }
    })
}

/**
 * @描述 获取部门树形结构数据
 * @返回 回调函数将请求结果带回
 * @码农 丁昌江
 * @日期 2021/3/1 15:03
 */
function getJobs(query, fallback) {
    get("/job/getJobs",query).then(({data}) => {
        if (fallback) {
            fallback(data.list,parseInt(data.total))
        }
    })
}

/**
 * @描述  获取用户
 * param query.name 名字查询
 * param query.mobile 手机号查询
 * param query.status 状态查询
 * param query.beginTime 用户创建的开始时间
 * param query.endTime 用户创建的结束时间
 * @日期 2021/2/26 9:36
 * @返回 回调方法，返回 分页list数据，分页总条数
 */
function getUsers(query,fallback) {
    get('/user/getUsers',query).then(({data}) => {
        if (fallback) {
            fallback(data.list,parseInt(data.total))
        }
    })
}

function getImg (url,fallback) {
    axios.get(url, {
        responseType: 'arraybuffer'
    }).then(response => {
        return (
            "data:image/png;base64," +
            btoa(
                new Uint8Array(response.data).reduce(
                    (data, byte) => data + String.fromCharCode(byte),
                    ""
                )
            )
        );
    }).then(res => {
        fallback(res)
    });
}

export default {
    getRoles,
    getMenuTree,
    getDeptTree,
    getJobs,
    getUsers,
    getImg
}
